[Exec](colocate) disable colocate group execution in bucket shuffle join#63200
Conversation
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
|
run buildall |
TPC-H: Total hot run time: 30942 ms |
TPC-DS: Total hot run time: 169461 ms |
FE UT Coverage ReportIncrement line coverage |
FE Regression Coverage ReportIncrement line coverage |
|
run external |
FE Regression Coverage ReportIncrement line coverage |
|
PR approved by at least one committer and no changes requested. |
|
PR approved by anyone and no changes requested. |
|
/review |
There was a problem hiding this comment.
Review result: no blocking issues found. The change is focused on avoiding tablet-count-based parallelism when a bucket/colocate scan fragment has exchange children, and the fallback matches the existing base scan parallelism path.
Critical checkpoints:
- Goal/test: The PR goal is to avoid over-parallelizing bucket shuffle join fragments; the code implements this by detecting non-empty exchange child jobs and falling back to the base degree-of-parallelism logic. The added unit test covers both exchange-present and pure colocate/no-exchange paths.
- Scope: The modification is small and localized to UnassignedScanBucketOlapTableJob.degreeOfParallelism, with a focused unit test.
- Concurrency/lifecycle: No new shared mutable state, threads, locks, or lifecycle-sensitive objects are introduced.
- Config/compatibility: No new configuration, persistence, serialization, FE-BE protocol, or storage format compatibility changes are introduced.
- Parallel paths: The affected construction path is the bucket-assigned OLAP scan job used for colocate/bucket-shuffle fragments; the fallback delegates to the existing AbstractUnassignedScanJob behavior.
- Conditional checks: The new condition is simple and documented; existing early exits for unpartitioned/query-cache/one-instance cases continue to mirror the base behavior.
- Test coverage: Targeted FE unit test passed: fe/mvnw -pl fe-core -Dtest=UnassignedScanBucketOlapTableJobTest test -Dskip.doc=true. No regression test was added; given this is planner parallelism behavior, a future explain/regression case could further protect end-to-end behavior, but I do not consider it blocking for this small fix.
- Observability/performance: No additional observability is required. The change reduces unnecessary instance parallelism for exchange-containing fragments.
- Data correctness/transactions: No transaction, visible-version, persistence, or data write path changes.
User focus: No additional user-provided review focus was present.
What problem does this PR solve?
Issue Number: None
Related PR: #63062
Problem Summary:
Disable colocate-style parallelization for bucket shuffle join fragments. When exchange nodes exist,
UnassignedScanBucketOlapTableJobnow falls back to the base degree-of-parallelism logic instead of using the tablet-based colocate strategy,which avoids over-parallelizing join fragments. The colocate path is still kept for pure colocate scans without exchange nodes.
Release note
None
Check List (For Author)
Check List (For Reviewer who merge this PR)